
// 有返回值 promise
const timeout = (ms) =>
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('');
    }, ms);
  });
  // 有返回值 promise实例
const ajax1 = () =>
  timeout(2000).then(() => {
    console.log('1');
    return 1;
  });
const ajax2 = () =>
  timeout(1000).then(() => {
    console.log('2');
    return 2;
  });
const ajax3 = () =>
  timeout(500).then(() => {
    console.log('3');
    return 3;
  });
const mergePromise = (ajaxArray) => {
  // 在这里实现你的代码
  // 返回值应该是什么 promise
  let p = Promise.resolve();
  // p.then(ajaxArray[0])
  // p.then(ajaxArray[1])
  // p.then(ajaxArray[2])
  // .then() 里面的回调的返回值 是下一个.then的参数
  // 处理结果  得到data数组
  const data = [];
  ajaxArray.forEach(item=>{
    p = p.then(item).then(res=>{
      console.log(res);
      data.push(res);
      return data;
    });
  });
  return p;
};
// [ajax1, ajax2, ajax3]
mergePromise([ajax1, ajax2, ajax3]).then((data) => {
  console.log('done');
  console.log(data); // data 为 [1, 2, 3]
});
